﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace TandvardsstodApp.Bedomningar
{
    // Skapad av Ali Agha, 2012-04-24

    public partial class Redigera : System.Web.UI.Page
    {

        /// <summary>
        /// Fyller kontroller med värden.
        /// Triggas när sidan laddas.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
            System.Data.DataSet dataSetKlinikNamn = client.GetDataKlinikNamn();
            System.Data.DataTable tableKlinikNamn = dataSetKlinikNamn.Tables[0];
            System.Data.DataSet dataSetBehKod = client.GetDataBehandlareLista();
            System.Data.DataTable tableBehKod = dataSetBehKod.Tables[0];


            System.Data.DataSet dataSetBehandlarekod = client.GetDataBehandlare();
            System.Data.DataTable tableBeh = dataSetBehandlarekod.Tables[0];


            try
            {


                for (int i = 0; i < tableKlinikNamn.Rows.Count; i++)
                {

                    DdlKlinik.Items.Add(tableKlinikNamn.Rows[i][2].ToString());

                }

                for (int i = 0; i < tableBehKod.Rows.Count; i++)
                {

                    DdlBehKod.Items.Add(tableBehKod.Rows[i][1].ToString());

                }

            }
            catch
            {
            }
        }

        /// <summary>
        /// Denna metod söker efter rätt löpnr och när den hittar rätt löpnr skriver den ut all information som
        /// finns i textboxarna, checkboxarna och även dropdownlistorna för att sedan kunna skicka in det på nytt.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void BtnSokF_Click(object sender, EventArgs e)
        {
            ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();

            if (IsPostBack)
            {
                System.Data.DataSet dataSetValue = client.GetDataByLöpnr(txtSokF.Text);
                System.Data.DataTable table = dataSetValue.Tables[0];


                try
                {
                    if (table.Rows[0][1].ToString() == txtSokF.Text)
                        lblResultat.Text = "<b>Förhandsbedömning finns</b>";
                    else if (table.Rows[0][3].ToString() == txtSokF.Text)
                        lblResultat.Text = "<b>Förhandsbedömning finns</b>";


                    // Detta är tillståndshantering som sparar aktuellt id.
                    this.ViewState["ID"] = table.Rows[0][0];

                    txtLopNr.Text = table.Rows[0][1].ToString();
                    txtLopNr.ReadOnly = true;
                    txtAnkomst.Text = string.Format("{0:yyyy-MM-dd}", table.Rows[0][2]);
                    txtPersonnr.Text = table.Rows[0][3].ToString();
                    txtBedömläkare.Text = table.Rows[0][5].ToString();
                    txtSandBTL.Text = string.Format("{0:yyyy-MM-dd}", table.Rows[0][6]);
                    txtAterBTL.Text = string.Format("{0:yyyy-MM-dd}", table.Rows[0][7]);
                    txtBeslutdatum.Text = string.Format("{0:yyyy-MM-dd}", table.Rows[0][8]);
                    txtBeslutAv.Text = table.Rows[0][9].ToString();
                    txtAterTillTandlakare.Text = string.Format("{0:yyyy-MM-dd}", table.Rows[0][10]);
                    txtKostnad.Text = string.Format("{0:0000.00}", table.Rows[0][16]);
                    DdlBehKod.Text = table.Rows[0][4].ToString();
                    DdlKlinik.Text = table.Rows[0][21].ToString();
                    DdlGrupp.Text = table.Rows[0][15].ToString();
                    chkNodTandvard.Checked = bool.Parse(table.Rows[0][11].ToString());
                    chkProtetik.Checked = bool.Parse(table.Rows[0][12].ToString());
                    chkMerAn4000Kr.Checked = bool.Parse(table.Rows[0][13].ToString());
                    chkTSLIES.Checked = bool.Parse(table.Rows[0][14].ToString());
                    chkGodkand.Checked = bool.Parse(table.Rows[0][17].ToString());
                    chkGodKandForandring.Checked = bool.Parse(table.Rows[0][18].ToString());
                    chkEjGodkand.Checked = bool.Parse(table.Rows[0][19].ToString());
                    chkMakulerad.Checked = bool.Parse(table.Rows[0][20].ToString());
                    chkTandvardsintygFinns.Checked = bool.Parse(table.Rows[0][23].ToString());
                    chkSarskildAtgard.Checked = bool.Parse(table.Rows[0][24].ToString());
                    TxtKommentar.Text = table.Rows[0][22].ToString();



                }
                catch
                {
                    ScriptManager.RegisterStartupScript(BtnSokF, BtnSokF.GetType(), "alertscript", "alert(" + '"' + "Förhandsbedömning finns inte!" + '"' + ")", true);

                }

            }
        }


        /// <summary>
        /// En metod som sparar ned all information i databasen, med en update SQL sats, och även
        /// rensar alla textboxar ifall try-satsen går igenom. Annars får man ett felmeddelande.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void sparaForhand_Click(object sender, EventArgs e)
        {
            ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
            try
            {
                client.UpdateFörhandsbedömning(txtLopNr.Text, DateTime.Parse(txtAnkomst.Text), txtPersonnr.Text, DdlBehKod.SelectedValue,
                txtBedömläkare.Text, DateTime.Parse(txtSandBTL.Text), DateTime.Parse(txtAterBTL.Text), DateTime.Parse(txtBeslutdatum.Text),
                txtBeslutAv.Text, DateTime.Parse(txtAterTillTandlakare.Text), chkNodTandvard.Checked, chkProtetik.Checked, chkMerAn4000Kr.Checked,
                chkTSLIES.Checked, short.Parse(DdlGrupp.SelectedItem.Text), decimal.Parse(txtKostnad.Text), chkGodkand.Checked,
                chkGodKandForandring.Checked, chkEjGodkand.Checked, chkMakulerad.Checked, DdlKlinik.SelectedValue, TxtKommentar.Text, chkTandvardsintygFinns.Checked,
                chkSarskildAtgard.Checked, (int)this.ViewState["ID"]);

                ScriptManager.RegisterStartupScript(sparaForhand, sparaForhand.GetType(), "alertscript", "alert(" + '"' + "Du har nu sparat din redigering!" + '"' + ")", true);

                txtLopNr.Text = "";
                txtAnkomst.Text = "";
                txtPersonnr.Text = "";
                txtBedömläkare.Text = "";
                txtSandBTL.Text = "";
                txtAterBTL.Text = "";
                txtBeslutdatum.Text = "";
                txtBeslutAv.Text = "";
                txtAterTillTandlakare.Text = "";
                txtKostnad.Text = "";

                chkNodTandvard.Checked = false;
                chkProtetik.Checked = false;
                chkMerAn4000Kr.Checked = false;
                chkTSLIES.Checked = false;
                chkGodkand.Checked = false;
                chkGodKandForandring.Checked = false;
                chkEjGodkand.Checked = false;
                chkMakulerad.Checked = false;
                chkTandvardsintygFinns.Checked = false;
                chkSarskildAtgard.Checked = false;
                TxtKommentar.Text = "";

            }
            catch
            {

                ScriptManager.RegisterStartupScript(sparaForhand, sparaForhand.GetType(), "alertscript", "alert(" + '"' + "Det gick inte att spara, var snäll försök igen.." + '"' + ")", true);
            }

        }
    }
}